»CL6:------------------------------------------------------------------------------- »CL0: Become A Coder »CL6:------------------------------------------------------------------------------- Written by »CL5:Sagrael »CL6:of »CL5:Appendix »CL1:I bet that many sceners sometimes consider, how it would feel, if they were coders. Does one need any special abilities? Does one need to remember all sin() & cos() tables and hundreds of [wzorów], or does one need to be born as a coder? Today, two assembly geniuses from Potion, Mavey and Diamond, and I will answer these and many others questions. »CL1:For most of us, regular sceners, coding rather associates with black- or voodoo magic than real abilities. Maybe some of us think coders are wizards, casting their spells and using forbidden books? Is this true? Does coding really has something in common with magic? »CL4:Mavey: »CL7:I think that if you like something, or even love it, there is always a bit of magic in it, something attracting that fascinates you. That is why I am a coder :) Therefore, if you are a coder, you can cast a spell, and see its results on your monitor, just like a magician and this is truly great, especially, when other people also like it. (Thanks Wouter=!) »CL1:Unfortunately, to like something is not enough to learn it. Mastering all the asm mnemonics is too heavy a task for many people! Even if they constantly try to do their best, they still cannot call themselves real coders. Out of curiosity, should coders have any special abilities? »CL4:Mavey: »CL7:Well, it is hard to tell. I know many coders and I have not noticed anything "uncommon". I can only say that one needs a huge amount of patience, especially in the beginning, when your work, although it is hard, is being held very cheap. Later, when we are more known to the scene, it is much easier. However, a coder is kept motivated to work by many other things as well. »CL1:So we can say; patience and a huge amount of strong will! How about math? I cannot imagine a coder without knowledge of math... Must a coder be a great mathematician? »PIC:2.iff» »CL4:Diamond: »CL6:Maybe not "great", but at least good. Math is an essential ingredient and without it, you cannot start messing with 3D. »CL4:Mavey: »CL7:Not really to be honest, but sometimes math is essential for a coder. For sure, while making basic effects, one must have knowledge on adding, subtracting, and multiplying :) Nevertheless, I think that the most important thing is your imagination. Why? Because you can invent very interesting new effects and ways to make them, which any "normal" person would not be able to invent :) Though in some cases, you cannot do anything without math. Especially in optimalization of a 3D engine, and of course in ray tracing! »CL1:I bet you have wondered, how the assembly magicians of today got started. Did they write impressive routines just after bringing home their Amigas from the store, or do their computer roots lie deeper in the past? How did their programming (coding) career get started and was their first machine even an Amiga? »CL4:Diamond: »CL6:I started with BASIC on C64. I think I was 9 years old then, so I did not make anything impressive at the time. I started with assembly on the A600 when I was in the 8th class of primary school, [so he was about 14 -translator], and I already knew about the scene, demos etc. at that time. Later it has somehow developed. »CL4:Mavey: »CL7:I hate the word "programming", because it sounds somewhat commercial, and I just do not like it, but okay. I think that everything started out with that magical computer, C64 of course. That was a thing! I started out by playing games like most others, but as time went by so did the satisfaction I got from playing. At first I tried to draw (art studio. :), but later, when I got a book about BASIC I started to mess with it. At first, I could not do anything, but later, after numerous long hours spent in front of the computer while searching for characters on the keyboard , it began to pay off. There was one nasty thing though! Everything I made was too slow and many things caused this, but I decided to do something about it, and I realized that there was something called "Assembly language". Therefore, I decided to learn it, but it appeared to be a bit hard, especially because I did not have ANY books about assembly. I once managed to re - write an effect from BASIC to assembly and then I decided only to code in assembly! I suddenly saw my programs running incredible fast :). Later I bought the A600 and then I started, fascinated by coding, with the decision of also making something on the Amiga. This took me much more time than before :). Now, I have a powerful Amiga and I still write in assembly, only in PowerPC one :). However, I am faithful to Amiga CPUs. Sometimes I must make a program in C for my school, but I am paid to do this, and can use the money to invest in my Amiga :) »CL1:As we see from Mabeys example, it was not that easy. No need to worry too much though, just start assembler and get to work ;) It seems that there is a lack of motivation here. We have always been told that coders are the laziest people in the whole scene, and that you have to beg or even force them to work! Can you agree with that opinion, or maybe it is a bit wrong? »CL4:Diamond: »CL6:Hey, you have exaggerated a bit with the "forcing to work". I cannot speak for others, but I must admit that I am a bit lazy. »CL4:Mavey: »CL7:I do not know every coder in the scene, but I think I can announce: I do not consider myself as being a lazy person, and I have been spending an enormous amount of time and work on coding, especially during the development of "Gush" and "Gift", where I really had to think hard about how I could put as much as possible into 64 kilobytes. :) I do not feel offended by that opinion, because I know that my group mates are sure, at least I hope so :), that I am not lazy. Of course, sometimes it has happened that I have not made the things that I had promised, but there are always various reasons. Maybe sometimes it comes from a lack of motivation, but I try to reduce this in order for it to happen as seldom as possible. »CL1:Thank God for that! Thanks to both Maveys and Diamonds activity, we are able to see great productions as "Gift", "Gush", and "Optional"! Could the scene exist without coders? »CL4:Diamond: »CL6:Of course! However, it would exist without demos and intros. It would be a bit strange, would it not? »CL4:Mavey: »CL7:NO, for sure, and it is not because I am a coder. It is obvious that the demo and intro compos are the most important compos on every party. Suppose there were no coders? Yes, there would still be gfx, music etc., but it is not enough. That is why I think we cannot exist without coders. Maybe the scene would exist, but something would be missing then. »CL1:Well, it is hard to disagree with your words! Okay, but do coders sometimes feel a lack of gratification towards their work? It is clear that they would earn a whole lot more in commercial programming, even if compared to the prizes for winning a demo compo on copy parties. »CL4:Mavey: »CL7:I can honestly say no. Sure, one can get much more cash when doing commercial platform programs, we all know that, but it is not about money here. First, I must ask myself, why I am part of the scene. I do not do it for the money, but for the pleasure and satisfaction it brings me. I simply like it. Of course, it is nice if you go to a party and win something, but that is not what the scene is about! Besides, I also use my coding skills to write programs in C for some people's exams, and earn money that way - money is essential for everyone. Therefore, this problem does surely not exist on my part. If it did, I would make demos, because the prizes in the demo compos are higher than those in the intro compos. »CL1:What does the second Potion coder have to say about this? »CL4:Diamond: »CL6:I must admit that I have not made that many scene productions. Of course, it would be nice to receive money for intros or demos, but since party organizers are not rich people, it is rather impossible, and I have therefore started to earn money by making "commercial" programs, as you called them. »CL1:Dear readers, maybe you are now wondering what the "toolbox" of a good coder looks like? Which software he uses, which Amiga configuration he uses and where he finds ideas for new effects? For many years, I have asked myself which is the more difficult, inventing a new effect or making it? »CL4:Diamond: »CL6:It depends. Sometimes you can invent something that is both new and easy to do at the same time. Other times it is different. The only limitation I know is your time. »CL4:Mavey: »CL7:I am going to be honest. Once, both were things I just could not do, but as time passed by, I found out that I would manage. At that time, it was much harder to make something than to invent it. I have had numerous ideas, but no ability to make them real. However, after much training, I think I got used to asm coding, so now it is much more difficult to invent something completely innovative, different from everything else, than it is to make it. Let us use our new raytracing engine as an example. For me this was very easy to code. The difficult thing was to invent how it should look, how the objects should be, etc. it is the same if we talk about calculated music, once it was pure black magic and now I simply sit down and re-write samples to assembly. »CL1:Which tools do you use? »CL4:Diamond: »CL6:I use PhxAss, PowerASM, vbcc, gcc, Asm and my private assembler, which will hopefully be finished some day. When this happens I will share it with others. »CL4:Mavey: »CL7:Recently PowerASM. I am really waiting for the assembler Diamond is writing (I wonder when he will finally finish those executables) and sometimes a C compiler. (GCC, StormC, etc.) In addition, I often use Personal Paint and ArtPRO. I also like to use LightWave and I think that is all. Oh, of course, I also use AsmPro, but it is rather seldom. »CL1:Since more powerful Amigas has been born, one sees a tendency to use hi-level programming languages, mainly C and similar, to make demos and other scene productions. If we use "Metatag" by Floppy as an example, the authors wrote that almost 90% of the code had been made in C. Therefore; it is worth asking if C is more comfortable and effective to write in than assembly? »CL4:Mavey: »CL7:Yes, but please notice that it is demo by Mawi! As far as I know the main loops and procedures are written in assembly, and I am convinced that this code is the most executed part. Therefore, in this case it makes no big difference, whether you choose one language or another. Because my school use C, I was forced to learn that language (and it is great to impress Mr. Professor). I am going to be honest; it is a language, which is very comfortable and fast to write in, but there is still one little thing: optimalisations! When we talk about the 68k family, optimalisation in assembly gives you very much. For instance, one sample from our "Gift" intro had been generating for about 20 seconds when we wrote it in C and only 2 seconds when we re-wrote it to pure asm. Sadly, on PowerPC the difference is not that big, because of the great number of registers. Many registers give more capability to the compiler, so code in C is not that much faster than assembly code, but the difference is still noticeable. In several cases where one can use specific asm tricks, C is out of question. Quite often, I make the invented effects in C first to check it out and see how it looks, then set the best parameters and re-write it to assembly. That is why assembly, in my opinion, is better to make demos, and when talking about intros, I have no doubts. »CL1:After a series of winning intros from Potion, I have no doubts either! Remember how making demos in something other than assembly was incredible just a few years back. Do you remember the fuss around Braindead (later Aivo) from Mellow Chips, when he told that most of "Dim" was coded using Amos? If anyone cannot believe it, I advise you to check out some old "ROM" issues. When talking about C, Maveys group collectively agreed with his words. »CL4:Diamond: »CL6:For sure, programming in C is faster. On the other hand, assembly language gives you more control of everything. That is why using asm and C combined is a wise decision. The most time-consuming pieces of code are written in assembly and the rest is written in C. It is very comfortable for the coder, and then it is faster to develop a demo. In addition, the code is much easier to modify. »CL1:Nothing to add! I am only wondering, if this piece of advice from the coders of Potion will push someone to start doing things in assembly? The scene needs new faces and I think that every coder, even medium-talented, is as precious as gold! Is it possible that some so-called "scene observers" get a little kick today and begin to code? Maybe one of the young coders will start to work harder and be more effective, or maybe someone, who would like to start coding, gets an impulse to start working? How should he start? What advise would Mavey and Diamond give to all those freaks dreaming about making Amiga productions? »CL4:Diamond: »CL6:Wow that is hard to say! In a normal situation, I would recommend some books, but the problem is that there are no books about Amiga! From Motorola's website you can download books about PPC and 68k CPU's in PDF format, but that is not for beginners, for sure! If someone would like to code they should check the archives on Aminet, where they can find some examples there. Also, mailing lists like the Polish "adevpl" and maybe establish contact with someone, who knows about coding. If someone wants to learn pure C/C++, there are tons of books in every bookstore. »CL4:Mavey: »CL7:Do not content yourself with dreams, but find out what your abilities are. At first it is always hard, but later it is great. I remember, in 1998 when I still had my A600 , I used to watch "Superautodrome" at Sators place, and I was excited like hell! I remember when I started "United" by Floppy on my A1200, at that time I was even afraid to dream that some day I would make something similar. Now it is clear that dreams do come true and I wish that for all the beginners out there! Do not stop, do nice things, but please remember that you are still young and that some things are not worth losing from spending all your time with the computer! »PIC:3.iff»